// import service from '@/utils/request'; // 导入封装的 axios 实例
import qs from 'qs';
import axios from 'axios';

const service = axios.create({
  baseURL: process.env.VUE_APP_API_BASE_URL || '/api',
  timeout: 10000
});
/**
 * 登录函数
 * @param {string} username - 用户名
 * @param {string} password - 密码
 * @param {string} role - 角色（默认为 "admin"）
 * @returns {Promise} - 返回 axios 的 Promise 对象
 */
export function login(username, password, role) {
  return service.post(
    'http://localhost:8080/login',
    qs.stringify({ // 将对象转换为 URL 编码格式
      username: username,
      password: password,
      role: role,
    }),
    {
      headers: {
        'Content-Type': 'application/x-www-form-urlencoded', // 设置请求头
      },
      // withCredentials: true, // 允许携带和接收 Cookie
    }
  );
}
export function register(username, password, nickname, role) {
  return service.post(
    'http://localhost:8080/register',
    qs.stringify({ // 将对象转换为 URL 编码格式
      username: username,
      password: password,
      nickname: nickname,
      role: role,
    }),
    {
      headers: {
        'Content-Type': 'application/x-www-form-urlencoded', // 设置请求头
      },
      // withCredentials: true, // 允许携带和接收 Cookie
    }
  );
}


export function searchProductsOrStores(searchType, keyWords) {
  
  return service.post(
      '/userView',
      qs.stringify({ searchType, keyWords }),
      {
          headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
      }
  ).then(response => {
    // console.log("ok")
    console.log("API Response:", response); // 打印完整响应
    
    return response.data; // 假设使用 Axios
  }).catch(error => {
    console.error("API Error Details:", {
      error: error.response?.data || error.message, // 打印更详细的错误信息
      requestParams: { searchType, keyWords }      // 打印请求参数
    });
    throw error; // 确保错误继续向上传递
  });
}

export function fetchProducts() {

return service.get("http://localhost:8080/userView"); // 确保后端提供该 API
}
// 新增购物车API方法
export function addToCart(productId, quantity = 1) {

  return service.post("/api/cart/add", null, {
    params: {
      productId,
      quantity
    }
  });
}